Exemplos de Uso do Do While

Aqui temos 3 exemplos de uso do do…while em Java, cada um com explicação clara do funcionamento e o motivo de usar essa estrutura.


Exemplo 1: Pedir senha até o usuário digitar corretamente

import java.util.Scanner; 
public class Exemplo1 { 
     public static void main(String[] args) {
         Scanner teclado = new Scanner(System.in); 
         String senhaCorreta = "1234"; 
         String senhaDigitada; 
         do { 
              System.out.print("Digite a senha: ");
               senhaDigitada = teclado.nextLine(); 
         } while (!senhaDigitada.equals(senhaCorreta)); 
         
         System.out.println("Acesso permitido!"); 
     }
}

Reescreva o código acima utilizando a classe que criamos nos textos passados: leitura.lerString(teclado, mensagem) .

Como funciona

  • O programa sempre pede a senha pelo menos uma vez.

  • Depois de o usuário digitar, o programa verifica se a senha está correta.

  • Enquanto a senha estiver errada, o laço se repete.

  • Quando a senha está certa, a condição se torna falsa e o loop termina.

  • O fluxo de execução do programa continua sua execução a partir do código que estiver escrito logo depois do termino do bloco de comandos.

Por que usar do…while aqui?

Porque queremos garantir que o usuário seja solicitado a digitar a senha pelo menos uma vez antes de qualquer verificação.


Exemplo 2: Menu interativo que só termina quando o usuário escolhe sair

import java.util.Scanner; 
public class Exemplo2 { 
   public static void main(String[] args) {         
      Scanner teclado = new Scanner(System.in); 
      int opcao; 

      do { 
            System.out.println("\n--- MENU ---"); 
            System.out.println("1 - Dizer Olá"); 
            System.out.println("2 - Mostrar número aleatório");
            System.out.println("3 - Sair"); 

            System.out.print("\nEscolha uma opção: ");             
            opcao = teclado.nextInt(); 
            
            switch (opcao) { 
                  case 1:
                        System.out.println("Olá!"); break; 
                  case 2: 
                        System.out.println("Número aleatório: " + Math.random()); break; 
                  case 3: 
                        System.out.println("Encerrando..."); break; 
                  default:
                        System.out.println("Opção inválida!"); 
            } 
       } while (opcao != 3); 
   } 
}

Reescreva o código acima utilizando a classe que criamos nos textos passados: leitura.lerInteiro(teclado, mensagem) .

Como funciona

  • O menu é mostrado uma vez antes de qualquer verificação.

  • O usuário escolhe uma opção.

  • O programa executa a ação da opção escolhida.

  • O laço só termina quando a opção digitada for 3 (Sair).

Por que usar do…while aqui?

Porque um menu precisa sempre ser exibido pelo menos uma vez, e só depois verificamos se o usuário quer sair ou continuar.


Exemplo 3 – Ler números e somá-los até que o usuário digite zero

import java.util.Scanner; 
public class Exemplo3 { 
     public static void main(String[] args) { 
          Scanner teclado = new Scanner(System.in); 

          int numero; 
          int soma = 0; 
          
          do { 
               System.out.print("Digite um número (0 para parar): ");
               numero = teclado.nextInt();
               soma += numero; 
          } while (numero != 0); 

          System.out.println("Soma total: " + soma); 
     }
}

Reescreva o código acima utilizando a classe que criamos nos textos passados: leitura.lerInteiro(teclado, mensagem) .

Como funciona

  • O programa pede um número ao usuário pelo menos uma vez.

  • O número é somado ao total.

  • Enquanto o número for diferente de 0, o laço continua.

  • Quando o usuário digita 0, o laço encerra.

Por que usar do…while aqui?

Porque queremos que o usuário digite ao menos um número, mesmo que ele decida parar imediatamente (digitando 0).


Resumo das vantagens nos exemplos

Exemplo Por que o do…while é ideal?
Senha Usuário deve digitar pelo menos uma vez
Menu O menu precisa aparecer pelo menos uma vez
Soma de números Um número precisa ser solicitado antes da verificação